﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration.Provider;
using System.Web.Configuration;
using Core.Configuration;
using Core.DMS;
using System.IO;

namespace Core.DMS.Providers
{
    /// <summary>
    /// http://msdn.microsoft.com/en-us/library/aa479038.aspx
    /// </summary>
    public abstract class DocumentProvider : AppFunctionProvider
    {
        public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config)
        {
            base.Initialize(name, config);
        }
        // document management
        public abstract Document GetDocument(int DocumentID);
        public abstract int SaveDocument(Document doc, Stream contentStream);
        public abstract void DeleteDocument(int DocumentID);

        // document content management
        public abstract void GetDocumentContent(int DocumentID, Stream outputStream);

        // heirarchy / folder management
        public abstract int SaveFolder(Folder folder);
        public abstract Folder GetFolder(int FolderID);
        public abstract List<FileSystemObject> GetFolderContents(int FolderID);
        public abstract void DeleteFolder(int FolderID);
    }
}
